In recent years, various methodologies have been developed to enable service provider servers to initiate the sending of data and notifications to smartphones or other mobile devices.
Modern networks and many mobile devices support wireless packet data communication to and from the mobile devices. These capabilities offer users a wide range of desirable communication features, such as email, web surfing, application selection and downloading, media content selection and downloading, etc. For many of the features or services, the mobile devices generally operate as clients with respect to service provider servers, and the mobile devices must themselves initiate all data communications with the service provider servers. As a result, if a service provider or other server wants to send a notification or other data communication to a mobile device, the server must wait for the mobile device to establish a data communication connection with the server. To enable more timely data communication to mobile devices, service providers have developed workaround methods to enable the service provider servers to indirectly initiate data communications with mobile devices. The workaround methods rely on short message service (SMS) messages to provide the mobile device with the notification, or to cause the mobile device to establish a data communication connection with the server.
Workaround methods, however, have evidenced inefficiencies on multiple fronts. By relying on SMS-type messaging, the workarounds require additional SMS-related hardware and software for operation. Notifications sent by SMS are subject to stringent limitations (e.g., SMS messages can be no longer than 140 ASCII characters). In cases in which the SMS notification causes the mobile device to establish a communication channel with the server, the mobile device, the associated subscriber account, and the requesting application need to be authenticated and/or validated each time a channel is established, requiring significant overhead in terms of network and communication resources. Server-initiated notifications are becoming more widespread, as mobile devices increasingly run multiple concurrent applications each requiring push notifications, and the increased usage of server-initiated notifications is straining network and communication resources as the number of mobile devices increases.
With the advent of push technology, a new modality is available to push messages to mobile devices. A push server can use a pull-based hypertext transfer protocol (HTTP) connection to push messages asynchronously, in real time to the mobile device. The source of push messages are enterprise applications and third party vendors, which together may be referred to as push sources. With the rapid growth in mobile push messaging services, a need exists for highly scalable communication systems able to keep pace with the growth in numbers of client devices using push messaging services, and with the bandwidth used by such client devices. Additionally, as users increasingly rely on push messaging services, push messaging systems should be highly available and provide reliable push messaging services at all times.